package com.zmn.plat.business.interfaces.channel.brand.ratio;

import java.util.Date;
import java.util.List;

import org.springframework.web.bind.annotation.RequestBody;

import com.zmn.plat.model.entity.channel.brand.ratio.ChannelBrandRatioQuery;
import com.zmn.plat.model.vo.channel.brand.ratio.ChannelBrandCategoryRatioVo;
import com.zmn.plat.model.vo.channel.brand.ratio.ChannelBrandRatioModifyVo;
import com.zmn.plat.model.vo.channel.brand.ratio.ChannelBrandRatioVo;

/**
 * 描述:ChannelBrandRatioBService
 *
 * @author linfeng
 * @since: 2020/09/02 15:56
 */
public interface ChannelBrandRatioBService {
    /**
     * 添加/修改渠道品牌系数
     *
     * @return
     */
    Integer addEditBrandRatio(String mcStaffName, @RequestBody ChannelBrandRatioVo brandRatioVo);

    /**
     * 添加或修改渠道品牌分类系数
     *
     * @param mcStaffName
     * @param brandRatioModifyVo
     * @return
     */
    Integer addEditCategoryRatio(String mcStaffName, @RequestBody ChannelBrandRatioModifyVo brandRatioModifyVo);

    /**
     * 描述：获取渠道品牌分类系数
     *
     * @param channelId
     *            渠道ID
     * @param brandId
     *            品牌ID
     * @param priceType
     *            价格类型
     * @param servCategId
     *            服务分类ID
     * @param bizType
     *            1.保外，2.保内，3.工程
     * @return
     */
    ChannelBrandCategoryRatioVo findByChannelIdAndBrandIdAndServCategId(int channelId, int brandId, int priceType, int servCategId, int bizType);

    /**
     * 描述：获取渠道品牌一级分类下所有二级分类系数
     *
     * @param query
     * @return
     */
    List<ChannelBrandRatioVo> listBrandLevelTwoRatioVo(ChannelBrandRatioQuery query);

    /**
     * 复制渠道品牌系数
     *
     * @param sourceChannelId
     * @param targetChannelId
     * @param bizType
     * @param priceType
     * @param effectiveDate
     * @param opertor
     */
    void copyRatio(Integer sourceChannelId, Integer targetChannelId, Integer bizType, Integer priceType, Date effectiveDate, String opertor);
}
